In general, electronic devices having mechanical switches as input signals must cope with the erratic signal behavior that typically occurs when the switch is activated and deactivated. For example, a keypad button for a cellular handset typically generates a bouncing signal while the keypad button is being pressed and released. The length of the period during which the bouncing occurs varies depending upon the switch or button and may, for example, range from several microseconds, to fifty milliseconds or more. For instance, the keypad button used in a cellular phone typically generates a signal that bounces for approximately 20 milliseconds. In most electronic devices, the bouncing or “glitching” of the keypad button signal must be filtered, because the keypad button or switch input is used to trigger digital logic such as, for example, a processor interrupt. If the bouncing or “glitching” is not removed, the processor may operate erratically, producing unexpected results. The process of removing or filtering the bounces or “glitches” from the button signal is typically referred to as “debouncing”. By debouncing the signal from a switch or button, the electronic device is able to base its operation upon a clean version of the user input.
Many different methods are used to debounce input signals from mechanical switches. Most debouncing is done using an analog circuit such as, for example, a capacitor, and a gate with a Schmitt input. This type of analog method has drawbacks including, for example, the need for additional discrete components (e.g., a capacitor), a lack of flexibility, and the added cost of the components. Electronic devices having a processor sometimes use software algorithms to filter inputs with bouncing signals. Such debounce software may use a significant amount of the processor capacity, may degrade system performance, and may cause the failure of the entire software system of the electronic device. Digital debounce filters are sometimes used, but are typically inflexible regarding debounce parameters, may only filter signal bounce in one direction, are susceptible to noise, and are difficult to test using design simulation tools.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with some aspects of the present invention as set forth in the remainder of the present application with reference to the drawings.